Skip to content

Bubble sort: .NET 10 and a copy-per-call benchmark - #2360

Merged
vladimir-pecanac-main merged 3 commits into
CodeMazeBlog:mainfrom
vladimir-pecanac-main:seo/66939-csharp-bubble-sort
Nov 10, 2026
Merged

vladimir-pecanac-main merged 3 commits into
CodeMazeBlog:mainfrom
vladimir-pecanac-main:seo/66939-csharp-bubble-sort

Conversation

@vladimir-pecanac-main

Copy link
Copy Markdown
Collaborator

Moves csharp-algorithms/BubbleSort to net10.0 with BenchmarkDotNet 0.15.8, MSTest 4.5.2, Microsoft.NET.Test.Sdk 18.11.0 and coverlet.collector 10.1.0. The benchmark moves out of Bubble into a new BubbleBenchmarks class that copies a source array into a working array at the start of every call, so the methods no longer sort an already sorted array after the first call; it runs sizes 200, 2,000 and 20,000 on random and sorted input, and Program.cs passes args to BenchmarkRunner. NumArray becomes non-nullable, the CollectionAssert argument order is fixed, and a new test checks both sort methods against LINQ Order().

Move the projects to net10.0, BenchmarkDotNet 0.15.8 and MSTest 4.5.2. Split the benchmark out of Bubble into BubbleBenchmarks, which copies a source array into a working array on every call so each call sorts unsorted (or sorted) input. Make NumArray non-nullable, pass args to BenchmarkRunner, fix the CollectionAssert argument order and add a test comparing both sort methods with LINQ Order().
@vladimir-pecanac-main
vladimir-pecanac-main merged commit 536d8f1 into CodeMazeBlog:main Nov 10, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant